The attitude of an agile spacecraft or satellite is often maintained and adjusted with a control moment gyro array because those devices provide high torque and torque amplification. A typical CMG is a rotating mass suspended on a gimbal with an actuator to rotate it on the gimbal axis, producing torque and accumulating angular momentum. Angular momentum is the integral of torque over time. An array of n&gt;3 CMGs is often used, allowing attitude control with some redundancy. Each CMG has an angular momentum (h) constrained essentially to a plane, the angular momentum vector of the gyro is nearly orthogonal to the gimbal axis. The error in orthogonality is small enough that it does not affect the operation of the CMG, the array of CMGs, or the attitude control of the satellite. The wheel speed of the CMG is essentially constant in most applications, but does not have to be for this invention to work. The torque produced by the CMG, Q is the result of the cross product Q=.delta..times.h, where .delta. is the gimbal rate and h is the angular momentum of the rotor, if varying wheel speed is incorporated then there is an additional term Q=.delta..times.h+h, where the angular momentum h is defined as h=J.OMEGA., and h=J.OMEGA., where J is the moment of inertia of the rotating wheel and .OMEGA. is the rotational rate of the wheel.
Classically the attitude control calculates the desired attitude rates for the satellite .omega..sub.d, being the three axis attitude rates. The gimbal angle (.delta.) rates for the CMG array are calculated using the pseudo inverse control law, .delta.=A.sup.T (AA.sup.T).sup.-1 J.sub.s .omega..sub.c, where J.sub.s is the satellite moment of inertia matrix, and A is the Jacobian of CMG array angular momentum with respect to gimbal angle, ##EQU1## where h is the sum of the angular momentum of the CMG array, ##EQU2## Since the A matrix is a function of the gimbal angles and the gimbal angels change in order to produce torque on the spacecraft the rank of A can drop from 3 to 2, which is a singular condition and the pseudo inverse cannot be calculated.